import time
from pyzbar import pyzbar

def read_images_barcodes(images, options):
    start_time = time.time()
    # 参数处理 默认获取条形码数据
    scan_barcodes = options.get('scan_barcodes', 'yes')

    # 创建结果列表
    images_barcode_list = []

    for image in images:
        # 创建结果列表
        barcode_list = []

        if scan_barcodes == 'yes': 
            # 扫描条形码
            results = pyzbar.decode(image)

            # 处理每个条形码结果
            for result in results:
                # 获取条形码类型和数据
                barcode_type = result.type
                barcode_data = result.data.decode("utf-8")

                # 获取条形码位置信息
                barcode_rect = result.rect
                pos = [
                    {'x': barcode_rect.left, 'y': barcode_rect.top},
                    {'x': barcode_rect.left + barcode_rect.width, 'y': barcode_rect.top},
                    {'x': barcode_rect.left + barcode_rect.width, 'y': barcode_rect.top + barcode_rect.height},
                    {'x': barcode_rect.left, 'y': barcode_rect.top + barcode_rect.height},
                ]

                # 构建条形码信息字典
                barcode_info = {
                    "type": barcode_type,
                    "word": barcode_data,
                    "pos": pos
                }

                # 将条形码信息添加到结果列表
                barcode_list.append(barcode_info)
        
        # 添加图片结果
        images_barcode_list.append(barcode_list)

    # 返回结果列表的JSON格式
    cost = time.time() - start_time
    return images_barcode_list, cost